# 多窗口切换
"""
说明：在Selenium中封装了获取当前窗口句柄、获取所有窗口句柄和切换到指定句柄窗口的方法；
句柄：英文handle，窗口的唯一识别码
方法：
1). driver.current_window_handle --> 获取当前窗口句柄
2). driver.window_handles --> 获取所有窗口句柄
3). driver.switch_to.window(handle) --> 切换指定句柄窗口   
"""
# 1. 获取‘表单综合实例.html’当前窗口句柄
# 2. 点击‘表单综合实例.html’页面中注册A页面
# 3. 获取所有窗口句柄
# 4. 获取注册A页面对应的窗口句柄，并切换
# 5. 操作注册A页面元素

from time import sleep
from selenium import webdriver

driver = webdriver.Chrome()
driver.get(r"C:\Users\19004\PycharmProjects\UI自动化测试\注册实例.html")
# 放大浏览器页面
driver.maximize_window()

# 填写用户名
driver.find_element_by_css_selector("#user").send_keys("admin")
# 填写密码
driver.find_element_by_css_selector("#password").send_keys("123456")
# 填写电话号码
driver.find_element_by_css_selector("#tel").send_keys("13207824014")
# 填写电子邮箱
driver.find_element_by_css_selector("#email").send_keys("132072205@qq.com")
sleep(2)
# 1. 获取‘表单综合实例.html’当前窗口句柄
current_handle = driver.current_window_handle
print("当前窗口句柄：", current_handle)

# 2. 点击‘表单综合实例.html’页面中注册A页面
driver.find_element_by_partial_link_text("注册A").click()

# 3. 获取所有窗口句柄
handle = driver.window_handles
print("所有窗口句柄: ", handle)

# 4. 获取注册A页面对应的窗口句柄，并切换
for i in handle:
    if i != current_handle:
        # 切换
        driver.switch_to.window(i)
        # 5. 操作注册A页面元素
        # 填写用户名
        driver.find_element_by_css_selector("#userA").send_keys("147147")
        # 填写密码
        driver.find_element_by_css_selector("#passwordA").send_keys("123456")
        # 填写电话号码
        driver.find_element_by_css_selector("#telA").send_keys("13207824014")
        # 填写电子邮箱
        driver.find_element_by_css_selector("#emailA").send_keys("132072205@qq.com")

sleep(3)
driver.quit()
